1. Technical Field
The claims herein generally relate to computer systems, and more specifically relate to the generation of random numbers in a computer system.
2. Background Art
Random numbers are used in many aspects of modern computer systems. In particular, random numbers are often used in generating appropriate security parameters in a computer system. However, computer systems have a difficult time generating high quality random numbers, i.e., sequences of numbers that are close to being truly random. There are many algorithms that appear to generate random numbers but they typically generate the same sequence of numbers, thus suffering from predictability.
Some computer systems attempt to add entropy to the system that generates random numbers as a way to generate differing sequences of random numbers. Entropy is a measure of the uncertainty associated with a random number. There aren't many good sources of entropy on most computer systems. Some computer systems rely on the seemingly random behavior of a human typing on a keyboard or moving a mouse pointer to introduce entropy. Other known techniques for adding entropy involve the use of time intervals between interrupts, or the occurrence of network errors, although these are not very useful due to the regularity of these intervals or the ability of outside forces to manipulate these intervals.
Computer systems that have limited user input have a particularly difficult time adding entropy to the system to improve the quality of random number generation. For example, embedded systems or highly parallel computer systems may need high-quality random numbers, but may lack the user input as a source of entropy to improve the quality of random number generation. Without a way to add entropy to improve the generation of random numbers in a computer system, many computer systems will continue to suffer from random numbers of lower quality.